// vue.config.js 配置说明
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
// 这里只列一部分，具体配置参考文档

// 在chainWebpack插件执行完毕后获取package.json版本号添加给mata标签
function getVersionPlugin() {
  const packageInfo = require('./package.json');
  return packageInfo.version;
}

// 使用@资源目录
const path = require('path');

function resolve(dir) {
  return path.join(__dirname, dir);
}

// port = 9528 npm run dev OR npm run dev --port = 9528
// yarn serve --port = 9528
const port = process.env.port || process.env.npm_config_port || 8080;

module.exports = {
  // 这一堆就是为了向mate标签中添加版本号
  pages: {
    index: {
      // page 的入口
      entry: 'src/main.js',
      // 模板来源
      template: 'public/index.html',
      // 在 dist/index.html 的输出
      filename: 'index.html',
      // 当使用 title 选项时，
      // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
      title: '页面title',
      // 在这个页面中包含的块，默认情况下会包含
      // 提取出来的通用 chunk 和 vendor chunk。
      chunks: ['chunk-vendors', 'chunk-common', 'index'],
      meta: {
        revised: `版本号, ${getVersionPlugin()}`
      }
    }
  },
  // 部署生产环境和开发环境下的URL。
  // 默认情况下，Vue CLI 会假设你的应用是被部署在一个域名的根路径上
  // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上，你就需要用这个选项指定这个子路径。例如，如果你的应用被部署在 https://www.ruoyi.vip/admin/，则设置 baseUrl 为 /admin/。
  publicPath: process.env.PUBLIC_PATH ? process.env.PUBLIC_PATH : '/',
  // 在npm run build 或 yarn build 时 ，生成文件的目录名称（要和baseUrl的生产环境路径一致）（默认dist）
  outputDir: 'dist',
  // 用于放置生成的静态资源 (js、css、img、fonts) 的；（项目打包之后，静态资源会放在这个文件夹下） 
  assetsDir: 'assets',
  // 是否开启eslint保存检测，有效值：ture | false | 'error'
  lintOnSave: process.env.NODE_ENV === 'development',
  // 如果你不需要生产环境的 source map，可以将其设置为 false 以加速生产环境构建。
  productionSourceMap: false,
  //打包路径。不写打包上线后可能访问找不到地址
  indexPath: 'index.html',
  runtimeCompiler: true,
  // webpack-dev-server 相关配置 
  devServer: {
    port: port,
    open: true,
    proxy: {
      // 代表将来如果url地址以/api开头，就会自动代理到对应的服务器
      '/apis/setmeet': {
        target: 'http://106.15.181.143:9510',
        changeOrigin: true,
        ws: true,
        pathRewrite: {
          '^/apis/setmeet': '/apis/setmeet',
        },
      },
    },
    overlay: {
      warnings: false,
      errors: true,
    },
  },
  configureWebpack: {
    resolve: {
      alias: {
        '@': resolve('src'),
      },
    },
  },
}